1 September 1998
Source: http://personal.sip.fi/~lm/c2txt2c/


C to English and English to C translator v0.1

Problem:

There is problem with free speech in the USA:

Judge Gwin of the Federal District Court of the Northern District of Ohio has recently held that software is not protected by the First Amendment because it is a ``functional device'' like a telephone circuit.

For more read Editorial in Slahdot: Open Software & Constitutionally Protected Speech

Demonstration that C source is speech:

I made a program that translates C-source for Blowfish cryptographic algorithm to English.

It consist of two programs:
c2txt translates blowfish.c.gz into English.
txt2c translates resulting English text back into c. After removing and adding few line breaks command
diff -uBw output2.c input.c will not produce output.

Anyone in the USA want to exercise their 1. amendment right and put English text in blowfish.txt into their web site? Mail me and I will link to it.

Links to blowfish.txt in the USA:

The Southern New Mexico Linux User Group (SNMLUG) home page.
HYPERTEK.NET, a culture zine for the information age.

Mirror:

Mirror for this site at nettaxi

Files:

Input for translator (C source): blowfish.c.gz (8KB)
Source code for translator: c2txt2c-0.1.tar.gz (12KB)

These things are not needed if you get above files and you have compiler installed:
Compressed output of translator (English text): blowfish.txt.gz (11KB)
or uncompressed output of translator: blowfish.txt (70K)

For anyone interested about Blowfish: documentation by Blowfish author Bruce Schneier: blowfish.doc.gz (11KB)

Work in progress:

c2txt2c-1998-08-24.tar.gz (8KB)
Very simple v0.2: c2txt2c-1998-08-25.tar.gz (8KB)
Now calculator to English and back should be possible with skeleton files: c2txt2c-1998-08-27.tar.gz (8KB)
Almost 0.2 version: c2txt2c-1998-08-31.tar.gz (11KB)

TODO:

Make some skeleton file and compiler (compiler compiler compiler ;-) to generate grammar and parser files from it.

Possible example:

variable_definition: {[type][name]=[expr];} <=> \
  \{There is [english_name] code named "[name]". He likes [english_type].}
    

Then make skeleton that produces more complete c2txt and txt2c translators.

Then make funny and fantasy and etc... skeletons.

Maybe skeletons for other languages too...

Links:

Discussion about c2txt2c in Slashdot
English -> Perl converter by Roger Espel Llima (espel@pobox.com)
The Dada Engine (link submitted by Mark Staples)
Libero: A Programmer's Tool and Code Generator (link submitted by Josh Baugher (jbaugher@vt.edu))


Leevi Marttila

Last modified: Mon Aug 31 10:18:32 EEST 1998